matlab中的聚类算法在很多数模题目中都会使用到,今天我看了matlab官网的视频,对聚类算法的一些基本知识和代码进行总结。
在进行聚类结果的输出前,可以根据轮廓值的大小,来判断合适的聚类数。
1、kmeans聚类
kmeans聚类算法是一种根据初始点不断迭代,最后将数据聚类的过程。具体算法流程自行度娘。
在matlab中,可以很方便地调用kmeans函数来进行聚类。
最常用到的函数为[IDX,C]=kmeans(X,k);
调用参数:X为矩阵,矩阵的每一行表示一个点,每一列表示一个变量;
k为聚类数;
返回参数:IDX为个体序号和类序号的对应关系;
在kmeans函数里,可以根据需要选择调用的参数
‘Distance’:聚类距离的度量方式
‘Start’:迭代初始点的选取方式
‘Replicates’:选取不同的初始点进行计算的次数,默认值为1
‘Options’:迭代的方式,需要创建一个statset变量,它包含如下两个参数
‘display’
'MaxIter':最大迭代次数
2、层次聚类
层次聚类方法的基本思想是:通过某种相似性测度计算节点之间的相似性,并按相似度由高到低排序,逐步重新连接个节点。该方法的优点是可随时停止划分
matlab中使用linkage函数创建系统聚类树
用dendrogram创建层次聚类树
下面给出一段matlab使用聚类的示例代码。
A=[79.95 75<